package com.diliuzun.delivery.controller;

import com.diliuzun.delivery.entity.Book;
import com.diliuzun.delivery.service.BookService;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

/**
 * @author lsy
 * 图书管理 控制器
 *
 * 1. 处理 request
 *      1.1 url 匹配
 *      1.2 参数获取
 *
 * 2. 处理 response
 *      1.1 ajax 请求响应
 *      1.2 普通请求响应
 *
 * RESTful:
 *      1. 用 URL 表示资源
 *      2. 用 HTTP 方法 （GET-查、POST-增、PUT-改、DELETE-删） 表示对资源的操作。
 */
@RestController
@Log4j
public class BookController{
    @Autowired
    private BookService bookService;

    @PostMapping("/book")
    public int doAdd(@RequestBody Book book){
        log.info("添加图书：" + book);
        return bookService.addBook(book);
    }

    @DeleteMapping("/book/{bookId}")
    public int doDelete(@PathVariable("bookId") String id) {
        log.info("删除图书：" + id);
        return bookService.deleteBookById(id);
    }

    @PutMapping("/book")
    public int doUpdate(@RequestBody Book book) {
        log.info("修改图书：" + book);
        return bookService.updateBook(book);
    }

    @GetMapping("/book")
    public ArrayList<Book> doList(Book book)  {
        log.info("查询图书：" + book);
        return bookService.selectBooks(book);
    }
}
